package com.ply.service;

import com.ply.entity.vo.Result;
import com.ply.service.impl.UserServiceImpl;

public interface LevelService {

    //判断是否可以升级

    /**
     * 判断是否可以升级
     *
     * @param levelId   等级id
     * @param allAmount 总金额
     * 可以升级时，将增加的投票次数返回，不能升级返回-1
     * @return
     */
    public Result isToUp(int levelId, double allAmount);

    /**
     * 根据等级id查找购买一天要多少钱，返回价格price
     *
     * @param levelId
     * @return
     */
    public double selectOneDayPrice(int levelId);

    /**
     * 根据等级id查找购买一次投票要多少钱,返回价格price
     *
     * @param levelId
     * @return
     */
    public double selectOneVotePrice(int levelId);

    /**
     * 根据等级ID查看对应等级需要的金额，将对应的金额返回
     *
     * @param levelId
     * @return
     */
    public double selectAmount(int levelId);

    /**
     * 查看对应等级能创建多少次投票，返回能投票的数量
     *
     * @param levelId
     * @return
     */
    public int selectSendVoteSum(int levelId);

    /**
     * 购买 次数
     * 根据等级ID和要购买几次来计算总的价钱，返回需要的价钱
     *
     * @param levelId        等级id
     * @param dayOrVoteCount 次数
     */
    public double buyVoteNumMoney(int levelId, int dayOrVoteCount);

    /**
     * 购买 day 天数
     * 根据等级id和购买几天来计算总价格，返回总价格
     *
     * @param levelId        等级id
     * @param dayOrVoteCount 次数
     */
    public double buyDayMoney(int levelId, int dayOrVoteCount);
}
